package com.pro.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

public class JsCourse {
    private Integer id;//编号
    private String url;//图片路径
    private String coursePrimary;//名称
    private BigDecimal courseNprice;//现价价格
    private Integer userId;//上传人id
    private Integer courseStatus;//状态1上架2下架321321其他
    private String title;//课程类别名称
    private Integer saleNum;//销量
    private String remarks;//审核状态
    private String userName;//上传人名称
    private Integer classId;//课程类别id
    private Integer likeNum;//点赞数
    private Integer collectNum;//收藏数
    private String courseIntro;//简介
    private String courseInfo;//备注
    private String courseUrl;//预览路径
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;//创建日期
    private Integer courseId;//课程id
    private String courseName;//课程名称
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateDate;//执行时间
    private BigDecimal coursePrice;//原价
    private String courseCstatus;//审核状态
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date implementDate;//审核时间
    private long courseTime;//课程时常
    private String type;//课程，视频的类型
    private Date applyDate;//发起时间
    private String lauchId;//发起人id
    private String result;//审核结果
    private Integer categroyId;//课程类Id
    private String createId;//创建人id
    private String mainImage;//图片上传返回路径(不用于数据库)
    private Integer operationType;//操作类型
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date executionTime;//操作时间
    private Integer updateId;//操作人id
    private String operationList;//操作表
    private Integer auditLogId;//审核日志id
    private String tableName;//jfoweshfuisdbguisgbeo
    private String remark;//备注
    private Integer aduitLogType;//操作的数据类分类
    private Integer logId;//操作日志Id
    private Integer logType;//操作日志类别类型
    private Integer countNum;

    public JsCourse() {
        super();
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        JsCourse course = (JsCourse) o;
        return courseTime == course.courseTime &&
                Objects.equals(id, course.id) &&
                Objects.equals(url, course.url) &&
                Objects.equals(coursePrimary, course.coursePrimary) &&
                Objects.equals(courseNprice, course.courseNprice) &&
                Objects.equals(userId, course.userId) &&
                Objects.equals(courseStatus, course.courseStatus) &&
                Objects.equals(title, course.title) &&
                Objects.equals(saleNum, course.saleNum) &&
                Objects.equals(remarks, course.remarks) &&
                Objects.equals(userName, course.userName) &&
                Objects.equals(classId, course.classId) &&
                Objects.equals(likeNum, course.likeNum) &&
                Objects.equals(collectNum, course.collectNum) &&
                Objects.equals(courseIntro, course.courseIntro) &&
                Objects.equals(courseInfo, course.courseInfo) &&
                Objects.equals(courseUrl, course.courseUrl) &&
                Objects.equals(createDate, course.createDate) &&
                Objects.equals(courseId, course.courseId) &&
                Objects.equals(courseName, course.courseName) &&
                Objects.equals(updateDate, course.updateDate) &&
                Objects.equals(coursePrice, course.coursePrice) &&
                Objects.equals(courseCstatus, course.courseCstatus) &&
                Objects.equals(implementDate, course.implementDate) &&
                Objects.equals(type, course.type) &&
                Objects.equals(applyDate, course.applyDate) &&
                Objects.equals(lauchId, course.lauchId) &&
                Objects.equals(result, course.result) &&
                Objects.equals(categroyId, course.categroyId) &&
                Objects.equals(createId, course.createId) &&
                Objects.equals(mainImage, course.mainImage) &&
                Objects.equals(operationType, course.operationType) &&
                Objects.equals(executionTime, course.executionTime) &&
                Objects.equals(updateId, course.updateId) &&
                Objects.equals(operationList, course.operationList) &&
                Objects.equals(auditLogId, course.auditLogId) &&
                Objects.equals(tableName, course.tableName) &&
                Objects.equals(remark, course.remark) &&
                Objects.equals(aduitLogType, course.aduitLogType) &&
                Objects.equals(logId, course.logId) &&
                Objects.equals(logType, course.logType) &&
                Objects.equals(countNum, course.countNum);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, url, coursePrimary, courseNprice, userId, courseStatus, title, saleNum, remarks, userName, classId, likeNum, collectNum, courseIntro, courseInfo, courseUrl, createDate, courseId, courseName, updateDate, coursePrice, courseCstatus, implementDate, courseTime, type, applyDate, lauchId, result, categroyId, createId, mainImage, operationType, executionTime, updateId, operationList, auditLogId, tableName, remark, aduitLogType, logId, logType, countNum);
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getCoursePrimary() {
        return coursePrimary;
    }

    public void setCoursePrimary(String coursePrimary) {
        this.coursePrimary = coursePrimary;
    }

    public BigDecimal getCourseNprice() {
        return courseNprice;
    }

    public void setCourseNprice(BigDecimal courseNprice) {
        this.courseNprice = courseNprice;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public Integer getCourseStatus() {
        return courseStatus;
    }

    public void setCourseStatus(Integer courseStatus) {
        this.courseStatus = courseStatus;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public Integer getSaleNum() {
        return saleNum;
    }

    public void setSaleNum(Integer saleNum) {
        this.saleNum = saleNum;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getClassId() {
        return classId;
    }

    public void setClassId(Integer classId) {
        this.classId = classId;
    }

    public Integer getLikeNum() {
        return likeNum;
    }

    public void setLikeNum(Integer likeNum) {
        this.likeNum = likeNum;
    }

    public Integer getCollectNum() {
        return collectNum;
    }

    public void setCollectNum(Integer collectNum) {
        this.collectNum = collectNum;
    }

    public String getCourseIntro() {
        return courseIntro;
    }

    public void setCourseIntro(String courseIntro) {
        this.courseIntro = courseIntro;
    }

    public String getCourseInfo() {
        return courseInfo;
    }

    public void setCourseInfo(String courseInfo) {
        this.courseInfo = courseInfo;
    }

    public String getCourseUrl() {
        return courseUrl;
    }

    public void setCourseUrl(String courseUrl) {
        this.courseUrl = courseUrl;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Integer getCourseId() {
        return courseId;
    }

    public void setCourseId(Integer courseId) {
        this.courseId = courseId;
    }

    public String getCourseName() {
        return courseName;
    }

    public void setCourseName(String courseName) {
        this.courseName = courseName;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public BigDecimal getCoursePrice() {
        return coursePrice;
    }

    public void setCoursePrice(BigDecimal coursePrice) {
        this.coursePrice = coursePrice;
    }

    public String getCourseCstatus() {
        return courseCstatus;
    }

    public void setCourseCstatus(String courseCstatus) {
        this.courseCstatus = courseCstatus;
    }

    public Date getImplementDate() {
        return implementDate;
    }

    public void setImplementDate(Date implementDate) {
        this.implementDate = implementDate;
    }

    public long getCourseTime() {
        return courseTime;
    }

    public void setCourseTime(long courseTime) {
        this.courseTime = courseTime;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Date getApplyDate() {
        return applyDate;
    }

    public void setApplyDate(Date applyDate) {
        this.applyDate = applyDate;
    }

    public String getLauchId() {
        return lauchId;
    }

    public void setLauchId(String lauchId) {
        this.lauchId = lauchId;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public Integer getCategroyId() {
        return categroyId;
    }

    public void setCategroyId(Integer categroyId) {
        this.categroyId = categroyId;
    }

    public String getCreateId() {
        return createId;
    }

    public void setCreateId(String createId) {
        this.createId = createId;
    }

    public String getMainImage() {
        return mainImage;
    }

    public void setMainImage(String mainImage) {
        this.mainImage = mainImage;
    }

    public Integer getOperationType() {
        return operationType;
    }

    public void setOperationType(Integer operationType) {
        this.operationType = operationType;
    }

    public Date getExecutionTime() {
        return executionTime;
    }

    public void setExecutionTime(Date executionTime) {
        this.executionTime = executionTime;
    }

    public Integer getUpdateId() {
        return updateId;
    }

    public void setUpdateId(Integer updateId) {
        this.updateId = updateId;
    }

    public String getOperationList() {
        return operationList;
    }

    public void setOperationList(String operationList) {
        this.operationList = operationList;
    }

    public Integer getAuditLogId() {
        return auditLogId;
    }

    public void setAuditLogId(Integer auditLogId) {
        this.auditLogId = auditLogId;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getAduitLogType() {
        return aduitLogType;
    }

    public void setAduitLogType(Integer aduitLogType) {
        this.aduitLogType = aduitLogType;
    }

    public Integer getLogId() {
        return logId;
    }

    public void setLogId(Integer logId) {
        this.logId = logId;
    }

    public Integer getLogType() {
        return logType;
    }

    public void setLogType(Integer logType) {
        this.logType = logType;
    }

    public Integer getCountNum() {
        return countNum;
    }

    public void setCountNum(Integer countNum) {
        this.countNum = countNum;
    }
}
